package yaut;

import java.io.Serializable;
import java.util.ArrayList;

import scene.SceneEditeur;
import Exportation.Serialization;
import UML.DiagrammeClasses;

/**
 * Permet de sauvegarder tous les couples DiagrammeClasses et SceneEditeur
 * @author Delmas Gabriel
 *
 */
public class SerialisationProjet implements Serializable 
{
	private static final long serialVersionUID = -2962486700244511325L;
	
	//Model d'un diagramme a sauvegarder
	private ArrayList<DiagrammeClasses> diagrammes;
	//Scene d'un diagramme a sauvegarder
	private ArrayList<SceneEditeur> scenes;
	
	/**
	 * Prend la liste des models et des scenes de tous les diagrammes
	 * @param diagrammes la liste des models
	 * @param scenes la liste des representation graphique
	 */
	public SerialisationProjet(ArrayList<DiagrammeClasses>	diagrammes, ArrayList<SceneEditeur> scenes)
	{
		this.diagrammes = diagrammes;
		this.scenes = scenes;
	}
	
	/**
	 * Accesseur des models
	 * @return la liste des models des diagrammes sauvegarder
	 */
	public ArrayList<DiagrammeClasses> getDiagrammes(){return this.diagrammes;}
	
	/**
	 * Accesseur des scenes
	 * @return la liste des representations graphiques des diagrammes sauvegarder
	 */
	public ArrayList<SceneEditeur> getScenes(){return this.scenes;}

	/**
	 * Permet de sauvegarder la classe
	 * @param fichier contenant le chemin du fichier a sauvegarder
	 */
	public void sauvegarder(String fichier)
	{
		Serialization.serialization(this, fichier);
	}

	/**
	 * Methode statique qui permet de charger un fichier
	 * @param fichier contenant le chemin du fichier a charger
	 * @return une instance de SerialisationProjet
	 */
	public static SerialisationProjet charger(String fichier)
	{
		return (SerialisationProjet)Serialization.deserialization(fichier);
	}
}
